Developer Documentation

QuickTime 4 API Documentation

Programming With QuickTime VR

| Previous | Chapter Contents | Chapter Top | Next |

Drawing in the Prescreen Buffer

The QuickTime VR Manager allows you to define a prescreen buffer imaging completion procedure that is called whenever QuickTime VR finishes drawing a panorama image in the prescreen buffer. Typically, your completion procedure adds graphical elements to the image before the buffer is copied to the screen. For instance, a flight simulator could overlay a heads-up display containing information about the aircraft (its altitude, velocity, and so forth).

You install a prescreen buffer imaging completion procedure by passing its address to the QTVRSetPrescreenImagingCompleteProc function:

theErr = QTVRSetPrescreenImagingCompleteProc(theInstance,
        NewQTVRImagingCompleteProc(MyImagingCompleteProc),
        (SInt32)&theData, 0);

Listing 2-10 defines a simple completion routine that overlays a picture onto the screen image.

Listing 10 Overlaying images in the prescreen buffer

pascal OSErr MyImagingCompleteProc (QTVRInstance, MyDataPtr theDataPtr)
{
    if (theDataPtr->hasLogoPict) {
        GWorldPtr   theOffscreenGWorld;
        GDHandle    theGD;
        Rect        gwRect;
        Rect        picRect;

        // The current graphics world is set to the prescreen buffer.
        GetGWorld (&theOffscreenGWorld, &theGD);
        gwRect = (*(theOffscreenGWorld->portPixMap))->bounds;

        picRect = (*(theDataPtr->logoPict))->picFrame;
        OffsetRect (&picRect, -picRect.left, -picRect.top);
        OffsetRect (&picRect, gwRect.right - (picRect.right + 8),
                gwRect.bottom - (picRect.bottom + 8));
        // Draw logo in lower right corner
        DrawPicture (theDataPtr->logoPict, &picRect);
    }
    return noErr;
}

On entry to the prescreen buffer imaging completion routine, the current graphics world is set to QuickTime VR's prescreen buffer. The MyImagingCompleteProc function defined in Listing 2-10 retrieves the dimensions of that buffer and then draws a picture in the lower-right corner of that buffer.


© 1998 Apple Computer, Inc.

| Previous | Chapter Contents | Chapter Top | Next |